﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Mystery.SCNR.Scripts
{
    public enum ObjectTypes
    {
        Biped = 0,
        Vehicle = 1,
        Weapon = 2,
        Scenery = 6,
        Machine = 7,
        Control = 8,
        SoundScenery = 10,
        Obstacle = 11
    }

    public enum FunctionTypes
    {
        Startup = 0,
        Dormant = 1,
        Continuous = 2,
        Static = 3,
        Stub = 4,
        CommandScript = 5
    }

    public enum DatumFlags
    {
        Null = 0xBABA,//-17734,
        Primitive = 1,
        ReturnFuncValue = 2,
        Variable = 4,
        Concatenated = 8,
        ConcatenatedPrimitive = 9,
        ConcatenatedReturnFuncValue = 10,
        ConcatenatedVariablePrimitive = 13,
    }

    public enum VariableTypes
    {
        Unparsed = 0,
        SpecialForm = 1,
        FunctionName = 2,
        Passthrough = 3,
        Void = 4,
        Boolean = 5,
        Real = 6,
        Short = 7,
        Long = 8,
        String = 9,
        Script = 10,
        StringID = 11,
        UnitSeatMapping = 12,
        TriggerVolume = 13,
        CutsceneFlag = 14,
        CutsceneCameraPoint = 15,
        CutsceneTitle = 16,
        CutsceneRecording = 17,
        DeviceGroup = 18,
        AI = 19,
        AICommandList = 20,
        AICommandScript = 21,
        AIBehaviour = 22,
        AIOrders = 23,
        StartingProfile = 24,
        Conversation = 25,
        StructureBSP = 26,
        Navpoint = 27,
        PointReference = 28,
        Style = 29,
        HudMessage = 30,
        ObjectList = 31,
        Sound = 32,
        Effect = 33,
        Damage = 34,
        LoopingSound = 35,
        AnimationGraph = 36,
        DamageEffect = 37,
        ObjectDefinition = 38,
        Bitmap = 39,
        Shader = 40,
        RenderModel = 41,
        StructureDefinition = 42,
        LightmapDefinition = 43,
        GameDifficulty = 44,
        Team = 45,
        ActorType = 46,
        HudCorner = 47,
        ModelState = 48,
        NetworkEvent = 49,
        Object = 50,
        Unit = 51,
        Vehicle = 52,
        Weapon = 53,
        Device = 54,
        Scenery = 55,
        ObjectName = 56,
        UnitName = 57,
        VehicleName = 58,
        WeaponName = 59,
        DeviceName = 60,
        SceneryName = 61,
    }

    public enum BuiltInFunctions
    {
        Begin = 0,
        BeginRandom = 1,
        If = 2,
        Cond = 3,
        Set = 4,
        And = 5,
        Or = 6,
        Add = 7,
        Minus = 8,
        Multiply = 9,
        Divide = 10,

        EqualTo = 13,
        NotEqualTo = 14,
        GreaterThan = 15,
        LessThan = 16,
        GreaterThanOrEqualTo = 17,
        LessThanOrEqualTo = 18,

        SleepUntil = 21,

        Players = 28,

        CinematicStart = 554,
        CinematicStop = 555,
        CinematicSkipStartInternal = 556,
        CinematicSkipStopInternal = 557,

        HudClearMessages = 664,
    }
}
